/**
 * @Project : ProgrammingExercises
 * @Package : Leetcode
 * @File : Q0014.java
 * @Author : WangRuoyu
 * @Date 2022/11/18 17:36
 */

package leetcode;

import java.lang.Math;


public class Q0014 {
//    static String StrProcessing(String s1, String s2) {
//        String res = "";
//
//        for (int i = 0; i < Math.min(s1.length(), s2.length()); ++i) {
//            if (s1.charAt(i) == s2.charAt(i)) {
//                res += s1.charAt(i);
//            } else {
//                break;
//            }
//        }
//        return res;
//    }
//
//    public String longestCommonPrefix(String[] strs) {
//        String res = strs[0];
//
//        for (int i = 1; i < strs.length; ++i) {
//            if (res.length() > 0) {
//                res = StrProcessing(res, strs[i]);
//            } else {
//                break;
//            }
//        }
//        return res;
//    }

    public String longestCommonPrefix(String[] strs) {
        StringBuilder sb = new StringBuilder();
        lo:
        for (int i = 0; ; i++) {
            if (i >= strs[0].length()) break;
            char ch = strs[0].charAt(i);
            for (int j = 1; j < strs.length; j++) {
                if (i >= strs[j].length() || ch != strs[j].charAt(i)) break lo;
            }
            sb.append(ch);
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        Q0014 sl = new Q0014();
        String[] str = {"flower", "flow", "flight"};
        System.out.println(sl.longestCommonPrefix(str));
    }
}

